In the past, time-shared computers, also known as mainframe computers, allowed a large number of users to interact concurrently with a single computer through the use of remotely located user terminals. The next wave of computing saw individual computers, also known as personal computers move onto a user's desktop. Over time, personal computers became more powerful than the centralized mainframe computers. However, over the last five to ten years, the computing industry has seen the deconstruction of personal computers into individual components of storage, processors, and user-interfaces, where each of these components is combinable in different ways. More recently, a growing trend has been to shift back to a centralized computing model with a processor and storage located in a data center, and a user interface extended out to the desktop for the user. The benefits of centralization in this model include reduced cost, increased security, reduced operational expense, increased resilience, and increased performance.
In order to meet the growing demands of a high performance environment in a centralized computing model, it is increasingly becoming critical to minimize the latency between a server system and a remote client display over an arbitrary network in order to provide an optimal user experience. This is particularly true when trying to provide an identical fidelity of experience between remote client displays and displays on local desktop computers. For example, latency and jitter in response to a user's action must be similar in both local and remote environments for a user to not perceive a difference between the two computing experiences.
Some commercially available systems are limited by the manner in which they address the issues of system latency. For example, such systems attempt to minimize latency by synchronizing video signals based only on source and destination clocks. Accordingly, these systems do not provide the functionality necessary to optimize and minimize system latency between remotely operating computing devices.